The present disclosure relates generally to computing and information storage devices and more particularly to dynamic physical and virtual multipath input/output (I/O) of computing and information storage devices. Common types of computing devices are desktop computers and server systems. As for information storage, an increasingly common technology is referred to as storage area networking, or simply storage area network (SAN). SAN technology comprises connecting remote computer storage devices, such as disk arrays and optical storage arrays, to servers and other computing devices in such a way that the storage devices appear as locally attached devices to the computing devices and the operating system which share the storage devices.
Fibre channel switches often connect servers and other computing devices to SANs. In a conventional fibre channel SAN, an Input/Output Controller (IOC) or Host Bus Adapter (HBA) includes an N_Port connected to a fibre channel switch or Just a Bunch Of Disks (JBOD) via a fibre channel link. During initialization, a driver of a host operating system (OS) initializes a fibre channel sequence and causes the HBA to send a Fabric Login command (FLOGI) to the fibre channel switch, including a World-Wide Port Name (WWPN) for the N_Port. The fibre channel switch returns a FLOGI response to the N_Port, including a fibre channel address or virtual identifier (virtual ID) associated with the WWPN for the N_Port.
The driver also performs a discovery function in which it communicates with the fibre channel switch via the HBA and obtains a list of the addresses of all devices in the fabric. The discovery function then includes going out to every address, logging into the device associated with that address, and determining if the device is a fibre channel/Small Computer System Interface (SCSI) target. If the device is a fibre channel/SCSI target, the discovery function establishes a connection between the target and the HBA. In addition, the physical fibre channel link is exported as a SCSI bus to the OS, and the remote port associated with the discovered FC/SCSI device thereafter appears as a target on the SCSI bus in a conventional SCSI fashion.
Conventional fibre channel SANs are limited because only one WWPN and fibre channel address can be assigned to the N_Port on a single fibre channel link. In other words, a conventional computing model contemplates a single OS per computing device, such that the OS explicitly owns the fibre channel port. Consequently, system management tools have been defined, such as zoning and selective storage presentation/Logical Unit Number (LUN) masking, based on the fibre channel port.
Fibre channel SAN technology has been extended, however, to include N_Port ID Virtualization (NPIV). NPIV is a standardized method for virtualizing a physical fibre channel port. NPIV allows a fabric-attached N_Port to claim multiple fibre channel addresses. Each address appears as a unique entity on the fibre channel fabric. Utilizing NPIV, multiple WWPNs and fibre channel addresses recognizable by the fibre channel switch can be assigned to a single physical fibre channel link and N_Port. Allowing the physical fibre channel port to appear as multiple entities to the fabric therefore extends or expands the conventional computing model.
Engineers have improved the fault-tolerance and performance of SANs by creating multiple physical paths, between physical processors of computing devices and the SANs. The multiple physical paths generally involve creating I/O paths through such devices as multiple buses, multiple controllers, multiple switches, and multiple bridge devices. The technique of creating multiple paths is typically referred to as multipath I/O. Existing implementations of multipath I/O use dedicated physical resources, such as dedicated fibre channel host bus adapters, switch ports, cables, and other physical resource elements.